#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<string>

using namespace std;

int maximumSwap(int num) {
    string s = to_string(num);
    int n = s.size();
    int maxidx = n - 1;
    int idx1 = -1, idx2 = -1;
    for (int i = n - 1; i >= 0; i--)
    {
        if (s[i] > s[maxidx])    maxidx = i;
        else if (s[i] < s[maxidx])
        {
            idx1 = i;
            idx2 = maxidx;
        }
    }
    if (idx1 >= 0)
    {
        swap(s[idx1], s[idx2]);
        return stoi(s);
    }
    return num;
}